package Controller.BDD;

import java.util.ArrayList;
import Model.Droit;
import Model.Groupe;
import Model.Utilisateur;


public class GestionDroitBDD {
	
	public GestionDroitBDD(){
		
	}
	
	
	public static ArrayList<Droit> recupererListeDroits(){
		GestionRequeteDroit gestRequete = new GestionRequeteDroit();
		return gestRequete.recupererListeDonnees("SELECT * FROM DROITS;");
	}
	
	public static Droit recupererDroitsParID(int id){
		GestionRequeteDroit gestRequete = new GestionRequeteDroit();
		return gestRequete.recupererDonnee("SELECT * FROM DROITS WHERE id = "+id+";");
	}
	
	public void insererDroit(Droit droit){
		GestionRequeteDroit gestRequete = new GestionRequeteDroit();
		gestRequete.executeStatement("INSERT INTO DROITS (libelle,description,page) values("+droit.getNom()+","+droit.getDescription()+","+droit.getPage()+");");
	}

	public static void supprimerDroit(Droit droit){
		GestionRequeteDroit gestRequete = new GestionRequeteDroit();
		gestRequete.executeStatement("DELETE FROM \"userPossede\" WHERE id_droit = "+droit.getID()+";");
		gestRequete.executeStatement("DELETE FROM \"groupePossede\" WHERE id_droit = "+droit.getID()+";");
		gestRequete.executeStatement("DELETE FROM DROITS WHERE id = "+droit.getID()+";");
	}
	
	public static void supprimerDroit(int droitID){
		GestionRequeteDroit gestRequete = new GestionRequeteDroit();
		gestRequete.executeStatement("DELETE FROM \"userPossede\" WHERE id_droit = "+droitID+";");
		gestRequete.executeStatement("DELETE FROM \"groupePossede\" WHERE id_droit = "+droitID+";");
		gestRequete.executeStatement("DELETE FROM DROITS WHERE id = "+droitID+";");
	}

	public void miseAJour(Droit droit){
		GestionRequeteDroit gestRequete = new GestionRequeteDroit();
		gestRequete.executeStatement("UPDATE DROITS set libelle = "+droit.getNom()+" WHERE id ="+droit.getID()+";");
		gestRequete.executeStatement("UPDATE DROITS set description = "+droit.getDescription()+" WHERE id ="+droit.getID()+";");
		gestRequete.executeStatement("UPDATE DROITS set page = "+droit.getPage()+" WHERE id ="+droit.getID()+";");
	}
	
	public static ArrayList<Droit> recupererListeDroitByName(String name){
		GestionRequeteDroit gestRequete = new GestionRequeteDroit();
		ArrayList<Droit> listeDroits = new ArrayList<Droit>();
		listeDroits = gestRequete.recupererListeDonnees("SELECT * FROM DROITS WHERE lower(libelle) LIKE '%" + name + "%';");

		return listeDroits;
	}
	
	public static void main(String[] args) {
		Droit droit = recupererDroitsParID(3);
		supprimerDroit(droit);
	}
}
